package _4Factory

import "fmt"

// 工厂模式

// Restaurant 定义餐馆
type Restaurant interface {
	GetFood()
}

// Donglaishun 东来顺餐馆
type Donglaishun struct {
}

func (d *Donglaishun) GetFood() {
	fmt.Println("东来顺饭菜已经生成完毕，就绪。。。")
}

// Qingfeng 庆丰包子铺
type Qingfeng struct {
}

func (q *Qingfeng) GetFood() {
	fmt.Println("庆丰包子铺已经生成完毕，继续。。。")
}

// NewRestaurant 提供方法，根据参数给出不同餐馆，就可以获取不同食物
func NewRestaurant(name string) Restaurant {
	switch name {
	case "d":
		return &Donglaishun{}
	case "q":
		return &Qingfeng{}
	}
	return nil
}
